package offer;

public class offerII_0089 {
    public int rob(int[] nums) {
        int len=nums.length;
        if(len==1){
            return nums[0];
        }
        if(len==2){
            return Math.max(nums[0],nums[1]);
        }
        if(len==3){
            return Math.max(nums[1],nums[0]+nums[2]);
        }
        int[] dp=new int[len];
        for(int i=0;i<3;++i){
            dp[i]=nums[i];

        }
        dp[2]+=nums[0];
        for(int i=3;i<len;++i){
            dp[i]=nums[i]+Math.max(dp[i-2],dp[i-3]);
        }
        return Math.max(dp[len-1],dp[len-2]);
    }
}
